The PHP’s MySQLi extension

(Originally posted on my Portuguese blog at rberaldo.com.br)

PHP has a MySQL extension natively since version 4. In PHP 5, the MySQLi extension was added, which is a more complete and recent version of the old MySQL extension.

Additionally, the MySQLi extension supports object-oriented programming. This new extension also enables the use of new MySQL features such as Stored Procedures or Views.

The MySQLi extension requires MySQL server version 4.1 or higher.

NOTE: Starting from PHP version 5.5, the MySQL extension (which uses mysql_* functions) is deprecated. You can read more about this in this link.

How to Use MySQLi

To establish a connection to the database, you can do the following:

$connection = new mysqli('server', 'user', 'password', 'db_name');

For example:

$connection = new mysqli('localhost', 'root', 'passwd', 'test');

If the connection is successful, $connection will be an object that you can use for subsequent queries and other database operations.

To execute a query, you can use the query() method and retrieve results using fetch_assoc(), which is similar to how you would use the old mysql extension:

$exec = $connection->query('SELECT data FROM table');

while ($row = $exec->fetch_assoc()) {
    print_r($row);
}

The complete list of properties and methods for the MySQLi class can be found in the following link:

MySQLi Extension Documentation

How to Migrate from MySQL to MySQLi

I wrote an article demonstrating how to migrate your PHP scripts from MySQL to MySQLi. Check it out in this link.

Related posts

7 Thoughts to “The PHP’s MySQLi extension”

  1. Roberto

    Parabéns pela iniciativa, Beraldo.

    Tenho um pequeno conhecimento em MySQLi, e todos os exemplos que vi e por onde aprendi (em um livro gringo) ele demonstrava o uso do MySQLi com uma abordagem procedural, e não OO, vou procurar me informar mais sobre o assunto.

  2. Andrey Knupp

    Concordo com a materia beraldo , mais eu deixei de usar MySQLi a um tempo e começei a usar PDO alem de ser uma DLL propia dele , fornece suporte a varios SGBD’s com metodos bem interessantes e seguros .. alem de haver PDO em 90% dos servidores web , ja o MySQLi não e todos que tem a extenção
    🙂 , mais foi boa a dica .. tem que parar de usar mysql_ e começar a pensar no futuro

  3. @Andrey

    Mexi com PDO poucas vezes e acho meio inútil. É uma tentativa de abstração de base de dados, mas está longe disso. Você pode mudar facilmente de SGBD, mas não pode usar funções nativas de cada SGBD. Então não serve pra muita coisa.

    Não recomendo PDO nem MySQLi, muito menos MySQL (comum). Acho mais fácil usar PostgreSQL de uma vez. A Oracle já acabou com o OpenOffice. O MySQL está na mira também. 😛

    1. PAulo

      mysql na mira? piada do seculo

  4. Andrey Knupp

    Certamente, a PDO suporta vários drivers, PgSQL, Firebird, SQLite até, então idependente do SGDB que você usa .. PDO dá suporte =) , é o MySQL ainda vai demorar muito a sair de mercado , a oracle pode ter 2 motivos que eu enchergo pra tirarem o mysql de mercado, 1: não querer dar mais suporte, 2: pensar que se tirar ele de mercado, mais pessoas vão usar ORACLE.
    eu já acho isso muito dificil de acontecer, pois se tirarem o MySQL que é um dos banco de dados mais usados do mundo, não va atrair clientes pra eles, muito pelo contrario, ele vai entregar os pontos pra concorrencia, PgSQL .. ou outro aí

  5. Leandro Cissoto

    É mto pessimismo pensar que o banco de dados mais utilizado no mundo, que é competente, estável e Open Source vá deixar de ter suporte.
    Mesmo pq há uma comunidade imensa e ativa de adeptos desse banco de dados.
    Além disso, cada vez mais pessoas usam o mysql por ser gratuito. Então pq diabos a oracle deixaria de lado um produto que tem notoriedade ?!

  6. Me salvou!

    Ótima postagem, sucesso!

Leave a Comment